﻿using PlutoStudio.Net.Messages;
using PlutoStudio.Net.Tcp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test.Client
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new TcpClient();
            client.Received += (o, e) =>
                {
                    var msg = e.Message;
                        Console.WriteLine("接收到服务器反馈:{0}", msg.Code);

                };
            client.Connected += (o, e) =>
                {
                    client.BeginReceive();
                };
            client.Connect();

            //var context = new PlutoStudio.Net.Client.NetContext<TcpClient>();
            //context.Client.Received+=(o,e)=>
            //{
            //    var msg = e.Message;
            //    var data = Encoding.UTF8.GetString(msg.Content);
            //    Console.WriteLine("接收到服务器反馈:{0},{1},{2}", msg.Flag, msg.Code, data);
              
            //};
            //context.Open();
            //context.BeginProcess();
            //while (true)
            //{
            //    var content = Console.ReadLine();
            //    if (string.IsNullOrWhiteSpace(content))
            //    {
            //        break;
            //    }
            //    var msgData = content.Split(' ');
            //    var flag = byte.Parse(msgData[0]);
            //    var code = byte.Parse(msgData[1]);
            //    var buffer = new byte[0];
            //    if (msgData.Length >= 3)
            //    {
            //        buffer = Encoding.UTF8.GetBytes(msgData[2]);
            //    }
            //    var message = new Message(flag, code, buffer);
            //    context.BeginInvoke(message, ar =>
            //        {
            //            var c = msgData[2];
            //            var msg = context.EndInvoke(ar);
            //            var data = Encoding.UTF8.GetString(message.Content);
            //            Console.WriteLine("接收到服务器反馈:{0},{1},{2},本地内容：{3}", msg.Flag, msg.Code, data, c);
            //        }, null);
            //}
            //int i = 1;
            //while (i++ < 10000)
            //{
            //    var content = i.ToString("1 1 消息：{0}");
            //    if (string.IsNullOrWhiteSpace(content))
            //    {
            //        break;
            //    }
            //    var msgData = content.Split(' ');
            //    var flag = byte.Parse(msgData[0]);
            //    var code = byte.Parse(msgData[1]);
            //    var buffer = new byte[0];
            //    if (msgData.Length >= 3)
            //    {
            //        buffer = Encoding.UTF8.GetBytes(msgData[2]);
            //    }
            //    var message = new Message(flag, code, buffer);
            //    context.BeginInvoke(message, ar =>
            //        {
            //            var c = msgData[2];
            //            var msg = context.EndInvoke(ar);
            //            var data = Encoding.UTF8.GetString(message.Content);
            //            Console.WriteLine("接收到服务器反馈:{0},{1},{2},本地内容：{3}", msg.Flag, msg.Code, data, c);
            //        }, null);
            //}
            Console.ReadKey();
            //context.Close();
        }
    }
}
